Class: MSc(SE)SY Unit II Sub: Client Server Technology
Unit-II
Components of Client/Server application
Client Services
The ideal client/server platform operates in an open systems environment using a requester server discipline that is based on well-defined standards. This enables multiple hardware and software platforms to interact. When the standard requester-server discipline is adhered to, servers may grow and change their operating system and hardware platforms without changing the client applications. Clients can be entry-level Intel 386SX machines or very powerful RISC-based workstations, and run the same application issuing the same requests for service as long as the standard requester-server discipline is adhered to. Traditional host applications that use the client for presentation services operate only by sending and receiving a character data stream to and from a server. All application logic resides on the server. This is the manner in which many organizations use workstation technology today. The expensive mainframe CPU is being used to handle functions that are much more economically provided by the workstation.
First-generation client/server applications using software such as Easel enable the input and output data streams to be reformatted at the client without changes to the host applications. They use an API that defines the data stream format. Easel uses the IBM-defined Extended High Level Language Application Program Interface (EHLLAPI). GUI front ends may add
additional functionality, such as the capability to select items for input from a list, selectively use color, or merge other data into the presentation without changing the host application.
An example of this form of client is an application developed for the emergency command and control services required by E911 dispatch applications. This computer application supports calls to the 911 emergency telephone number and dispatches fire, police, ambulance, or emergency vehicles to an incident. This application traditionally has been implemented on a fault-tolerant minicomputer with access provided from a character mode dumb terminal. The information is displayed in list form, and the operator can move the cursor to an item on the list for selection or rekey the data for input. Prior implementations of this application handled the address of the caller by displaying it on the screen as a text field.
In the client/server implementation of this system, the workstation user deals only with a GUI. The workstation plots this address onto a map that in turn displays the location of the fire. In addition, the locations of all fire stations and vehicles are plotted on the map. The dispatch operator can see at a glance the entire status of fire support close to the fire. Previous implementations of this application displayed lists of optional fire vehicles. From this list, the operator keyed in a selected vehicle. The GUI front end, however, enables the vehicles to be shown in a window and selected by using a mouse pointer. This not only reduces the cost of
1
Class: MSc(SE)SY Unit II Sub: Client Server Technology
execution but can significantly reduce errors, increase productivity, and reduce stress experienced by the dispatch operator.
GUIs enable users to be more productive with less training, because the interface is more intuitive. Several studies comparing the productivity and learning curve for users of GUI applications versus traditional character mode applications have demonstrated improvements of greater than 200 percent.
The functionality of the client process can be further extended at the client by adding logic that is not implemented in the host server application. Local editing, automatic data entry, help capabilities, and other logic processes can be added in front of the existing host server
application. If many errors are detected at the client, or functions such as online help are completely off loaded, the workload of the host server decreases. There is an opportunity to provide extensive interactive help and training integrated into a client/server application using only the services of the client workstation and NOS.
One example of this functionality is shown by an application developed for the state of Hawaii. To determine welfare eligibility, state employees conduct an extensive analysis of each applicant's personal situation. The process of capturing this information is time consuming and stressful for the case worker and the applicant. Hawaii addressed this requirement by using an "unattended" kiosk for the interview—an interactive video unit provides the questions and displays a set of possible responses. Users enter responses on a touch screen and can respond to the questions at their own rate. The case worker is not tied up with the mechanics of filling out the questionnaire, and the state has the opportunity through the interactive video to ensure that applicants are aware of all their rights and responsibilities. The case worker and applicant review the application after it is completed. The existing computer system captures and edits the data and performs the final eligibility determination. A dramatically different and more effective user interface is provided while preserving much of the investment in existing computer systems.
Completion of multipart forms often involves redundant data entry into multiple computer systems or applications. Collecting this data at the source or into a common data entry function and distributing it to the other data entry functions can reduce costs and errors. Ideally, the information is entered by the individual or process responsible for the data creation. This enables the individual with the knowledge to make corrections and to do so immediately. The workgroup LAN server captures the data and stores it. When a business process defined to capture data from one copy of the form is invoked, the stored data is automatically merged into the form. This is updated, by the user, with additional data that is now available. In this manner, data is keyed only once and every business process uses the same data. Information is made available immediately after capture and can be distributed electronically to all authorized users.
It is possible to make fundamental changes in the business process, using a Business Process Reengineering (BPR) methodology and client/server computing. One such example uses electronic imaging. Many firms have found that it pays to put a series of steps that formerly involved different people handling each step, onto the shoulders of a single "case worker." One insurance company, for example, estimated that it took 22 days to approve a policy, during which time the papers were worked on for only 17 minutes. The remainder of the time was spent shuffling papers between specialists—from credit-checkers to actuaries to salespeople and back. By enabling everyone in an organization to share information more or
2
Class: MSc(SE)SY Unit II Sub: Client Server Technology
less instantly, new technology highlights the fact that most insurance policies never need be seen by most of these specialists. As long as specialists can be consulted quickly when needed, the vast majority of policies can be handled by a single person. Mutual Benefit Life used such a procedure to boost productivity among clerical staff by 60 percent.1
Another commonly used technique to leverage the power and ease of use of the workstation is provided by tools, such as Trinzic's Forest & Trees. These tools provide easy-to-use facilities to manipulate data either stored on the existing host databases or downloaded to local servers. This technique of "data mining" through the use of powerful developer tools to provide rapid development of new management decision support functions, portends the future for systems development. Future developers will be knowledge workers — technologists with an equally strong business understanding using tools that are intuitive and powerful. Data will be provided to the workstation user in a form consistent with his or her business understanding.
Why is workstation technology so effective? It supports the new business paradigm of employee empowerment. It provides the windowing capabilities to simultaneously access and display all information necessary to complete the business process. The capability of powerful workstation technology to recommend and make decisions based on historical precedent can dramatically reduce cost and improve service by shortening the decision making cycle.
Request for Service
Client workstations request services from the attached server. Whether this server is in fact the same processor or a network processor, the application format of the request is the same. NOS software translates or adds the specifics required by the targeted requester to the application request.
Interprocess communication (IPC) is the generic term used to describe communication between running processes. In the client/server model, these processes might be on the same computer, across the LAN, or across the WAN.
The most basic service provided by the NOS is redirection. This service intercepts client workstation operating system calls and redirects them to the server operating system. In this way, requests for disk directories, disk files, printers, printer queues, serial devices, application programs, and named pipes are trapped by the redirection software and redirected (over the LAN) to the correct server location. It is still possible for some of these services to be provided by the client workstation. The local disk drives may be labeled A: and C: and the remote drives labeled D:, E:, and F:.
How does redirection work?
1. Any request for drive A: or C: is passed through to the local file system by the redirection software. Requests for other drives are passed to the server operating system. Printers are accessed through virtual serial and parallel ports defined by the NOS redirector software.
2. The NOS requester software constructs the remote procedure call (RPC) to include the API call to the NOS server.
3
Class: MSc(SE)SY Unit II Sub: Client Server Technology
3. The NOS server then processes the request as if it were executed locally and ships the response back to the application.
Novell commercialized this redirector concept for the Intel and MS-DOS platforms, and it has been adopted by all NOS and UNIX network file system (NFS) vendors. The simplicity of executing standard calls to a virtual network of services is its main advantage.
Remote Procedure Call (RPC)
Over the years, good programmers have developed modular code using structured techniques and subroutine logic. Today, developers want subroutines to be stored as a named objects "somewhere" and made available to everyone with the right to use them. Remote procedure calls (RPCs) provide this capability. RPCs standardize the way programmers must write calls, so that remote procedures can recognize and respond correctly.
If an application issues a functional request and this request is embedded in an RPC, the requested function can be located anywhere in the enterprise that the caller is authorized to access. The RPC facility provides for the invocation and execution of requests from processors running different operating systems and using hardware platforms different from that of the caller. Many RPCs also provide data translation services. The call causes dynamic translation of data between processors with different physical data storage formats. These standards are evolving and being adopted by the industry.
Fax/Print Services
The NOS enables the client to generate print requests even when the printer is busy. These are redirected by the NOS redirector software and managed by the print server queue manager. The client workstation can view the status of the print queues at any time. Many print servers notify the client workstation when the print request is completed. Fax services are made available in exactly the same manner as print servers, with the same requester server interface and notification made available.
Window Services
A client workstation may have several windows open on-screen at any time. The capability to activate, view, move, size, or hide a particular window is provided by the window services of the client operating system. These services are essential in a client/server implementation, because they interact with message services provided to notify the user of events that occur on a server. Application programs are written with no sensitivity to the windowing. Each application is written with the assumption that it has a virtual screen. This virtual screen can be an arbitrary size and can even be larger than the physical screen.
The application, using GUI software, places data into the virtual screen, and the windowing services handle placement and manipulation of the application window. This greatly simplifies application development, because there is no need for the developer to build or manage the windowing services. The client user is totally in control of his or her desktop and can give priority to the most important tasks at hand simply by positioning the window of interest to the "front and center." The NOS provides software on the client workstation to manage the creation of pop-up windows that display alerts generated from remote servers. E-
4
Class: MSc(SE)SY Unit II Sub: Client Server Technology
mail receipt, print complete, Fax available, and application termination are examples of alerts that might generate a pop-up window to notify the client user.
Remote Boot Services
Some applications operate well on workstations without any local disk storage; X-terminals and workstations used in secure locations are examples. The client workstation must provide sufficient software burned into erasable programmable read-only memory (E-PROM) to start the initial program load (IPL)—that is, boot—process. E-PROM is included in all workstations to hold the Basic Input/Output System (BIOS) services. This mini-operating system is powerful enough to load the remote software that provides the remaining services and applications functions to the client workstation or X-terminal.
Other Remote Services
Applications can be invoked from the client to execute remotely on a server. Backup services are an example of services that might be remotely invoked from a client workstation. Business functions such as downloading data from a host or checking a list of stock prices might also be invoked locally to run remotely. Software is provided by the NOS to run on the client workstation to initiate these remote applications.
Mobile computing is increasingly being used to remain functional while out of the office. With appropriate architectural forethought, applications can be built to operate effectively from the office LAN or the remote laptop. Current technology supports full-powered workstations with the capability for GUI applications consistent with the desktop implementation. The IPC protocol of choice for mobile access is TCP/IP based.
Utility Services
The operating system provides local functions such as copy, move, edit, compare, and help that execute on the client workstation.
Message Services
Messages can be sent and received synchronously to or from the network. The message services provide the buffering, scheduling, and arbitration services to support this function.
Network Services
The client workstation communicates with the network through a set of services and APIs that create, send, receive, and format network messages. These services provide support for communications protocols, such as NetBIOS, IPX, TCP/IP, APPC, Ethernet, Token Ring, FDDI, X.25, and SNA. These are more fully described in Chapter 5, "Components of Client/Server Applications—Connectivity."
Application Services
In addition to the remote execution services that the NOS provides, custom applications will use their own APIs embedded in an RPC to invoke specialized services from a remote server.
5
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Database Services
Database requests are made using the SQL syntax. SQL is an industry standard language supported by many vendors. Because the language uses a standard form, the same application may be run on multiple platforms. There are syntactical differences and product extensions available from most vendors. These are provided to improve developer productivity and system performance and should be carefully evaluated to determine whether their uses are worth the incompatibility implied by using proprietary components. Using unique features may prevent the use of another vendor's products in a larger or smaller site. Certain extensions, such as stored procedures, are evolving into de facto standards.
The use of stored procedures is often a way of avoiding programmer use of proprietary extensions needed for performance. A clear understanding, by the technical architects on the project, of where the standards are going is an important component of the SDE standards for the project.
Network Management Services-Alerts
Most network interface cards (NICs) can generate alerts to signify detected errors and perhaps to signify messages sent and received. These alerts are valuable in remote LAN management to enable early detection of failures. Because many errors are transient at first, simple remote detection may allow problems to be resolved before they become critical. Applications may also generate alerts to signify real or potential problems. Certain error conditions indicate that important procedures are not being followed. Application program failure may occur because current versions of software are not being used.
Support for a remote client workstation may be greatly simplified if alerts are generated by the applications. This should be part of every standard SDE. Many alert situations can be generated automatically from standard code without the involvement of the application developer. A more complete discussion of network management issues is included in the communications section of Chapter 5.
Dynamic Data Exchange (DDE)
DDE is a feature of Windows 3.x and OS/2 Presentation Manager that enables users to pass data between applications from different vendors through support for common APIs. For example, a charting package can be linked to a database to provide the latest chart data whenever the chart is referenced.
Object Linking and Embedding (OLE)
OLE is an extension to DDE that enables objects to be created with the object components software aware. Aware means that a reference to the object or one of its components automatically launches the appropriate software to manipulate the data. For example, a document created with a word processor may include an image created by a graphics package. The image can be converted to the internal graphics form of the word processor, such as WPG form for WordPerfect. With OLE, the image can be included in its original form within the document object; whenever the image is selected or highlighted, the graphics package will take control to manipulate the image. Activation of the software is totally transparent to the users as they navigate through the document.
6
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Currently with OLE, one software package accesses data created from another through the use of a viewer or launcher. These viewers and launchers must be custom built for every application. With the viewer, users can see data from one software package while they are running another package. Launchers invoke the software package that created the data and thus provide the full functionality of the launched software.
Both these techniques require the user to be aware of the difference between data sources. DDE and OLE provide a substantial advantage: any DDE- or OLE-enabled application can use any software that supports these data interchange APIs. An e-mail application will be able to attach any number of components into the mail object without the need to provide custom viewers or launchers.
Not all Windows applications support OLE, but Microsoft has released its OLE 2.0 software development kit (SDK). The toolkit greatly simplifies OLE integration into third-party, developed applications. Organizations wanting to create a consistent desktop are beginning to use the OLE SDK as part of custom applications.
OLE 2.0 extends OLE capabilities to enable a group of data to be defined as an object and saved into a database. This object can then be dragged and dropped into other applications and edited without the need to switch back to the application which created it. This provides a more seamless interface for the user. In OLE 1.x, double-clicking a Lotus 1-2-3 for Windows spreadsheet embedded in a Microsoft Word for Windows document launches 1-2-3 and opens the document in a 1-2-3 window. Under OLE 2.0, the active window (Word's) menu and toolbar change to that of 1-2-3. The user deals only with the object, with no need to be aware of the multiple software being loaded.
Common Object Request Broker Architecture (CORBA)
CORBA is a specification from the Object Management Group (OMG), a UNIX vendor consortium. OLE focuses on data sharing between applications on a single desktop, and CORBA addresses cross-platform data transfer and the process of moving objects over networks. CORBA support enables Windows and UNIX clients to share objects. A word processor operating on a Windows desktop can include graphics generated from a UNIX workstation.
Server Functionality in Detail
The discussion in the following sections more specifically describes the functions provided by the server in a NOS environment.
Request Processing
Requests are issued by a client to the NOS services software resident on the client machine. These services format the request into an appropriate RPC and issue the request to the application layer of the client protocol stack. This request is received by the application layer of the protocol stack on the server.
7
Class: MSc(SE)SY Unit II Sub: Client Server Technology
File Services
File services handle access to the virtual directories and files located on the client workstation and to the server's permanent storage. These services are provided through the redirection software implemented as part of the client workstation operating environment. As Chapter 3 described, all requests are mapped into the virtual pool of resources and redirected as necessary to the appropriate local or remote server. The file services provide this support at the remote server processor. In the typical implementation, software, shared data, databases, and backups are stored on disk, tape, and optical storage devices that are managed by the file server.
To minimize the effort and effect of installation and maintenance of software, software should be loaded from the server for execution on the client. New versions can be updated on the server and made immediately available to all users. In addition, installation in a central location reduces the effort required for each workstation user to handle the installation process. Because each client workstation user uses the same installation of the software, optional parameters are consistent, and remote help desk operators are aware of them. This simplifies the analysis that must occur to provide support. Sharing information, such as word processing documents, is easier when everyone is at the same release level and uses the same default setup within the software. Central productivity services such as style sheets and macros can be set up for general use. Most personal productivity products do permit local parameters such as colors, default printers, and so forth to be set locally as well.
Backups of the server can be scheduled and monitored by a trained support person. Backups of client workstations can be scheduled from the server, and data can be stored at the server to facilitate recovery. Tape or optical backup units are typically used for backup; these devices can readily provide support for many users. Placing the server and its backups in a secure location helps prevent theft or accidental destruction of backups. A central location is readily monitored by a support person who ensures that the backup functions are completed. With more organizations looking at multimedia and image technology, large optical storage devices are most appropriately implemented as shared servers.
Fax/Print/Image Services
High-quality printers, workstation-generated faxes, and plotters are natural candidates for support from a shared server. The server can accept input from many clients, queue it according to the priority of the request and handle it when the device is available. Many organizations realize substantial savings by enabling users to generate fax output from their workstations and queue it at a fax server for transmission when the communication costs are lower. Incoming faxes can be queued at the server and transmitted to the appropriate client either on receipt or on request. In concert with workflow management techniques, images can be captured and distributed to the appropriate client workstation from the image server. In the client/server model, work queues are maintained at the server by a supervisor in concert with default algorithms that determine how to distribute the queued work.
Incoming paper mail can be converted to image form in the mail room and sent to the appropriate client through the LAN rather than through interoffice mail. Centralized capture and distribution enable images to be centrally indexed. This index can be maintained by the database services for all authorized users to query. In this way, images are captured once and are available for distribution immediately to all authorized users. Well-defined standards for
8
Class: MSc(SE)SY Unit II Sub: Client Server Technology
electronic document management will allow this technology to become fully integrated into the desktop work environment. There are dramatic opportunities for cost savings and improvements in efficiency if this technology is properly implemented and used. Chapter 10 discusses in more detail the issues of electronic document management.
Database Services
Early database servers were actually file servers with a different interface. Products such as dBASE, Clipper, FoxPro, and Paradox execute the database engine primarily on the client machine and use the file services provided by the file server for record access and free space management. These are new and more powerful implementations of the original flat-file models with extracted indexes for direct record access. Currency control is managed by the application program, which issues lock requests and lock checks, and by the database server, which creates a lock table that is interrogated whenever a record access lock check is generated. Because access is at the record level, all records satisfying the primary key must be returned to the client workstation for filtering. There are no facilities to execute procedural code at the server, to execute joins, or to filter rows prior to returning them to the workstation. This lack of capability dramatically increases the likelihood of records being locked when several clients are accessing the same database and increases network traffic when many unnecessary rows are returned to the workstation only to be rejected.
The lack of server execution logic prevents these products from providing automatic partial update backout and recovery after an application, system, or hardware failure. For this reason, systems that operate in this environment require an experienced system support programmer to assist in the recovery after a failure. When the applications are very straightforward and require only a single row to be updated in each interaction, this recovery issue does not arise. However, many client/server applications are required to update more than a single row as part of one logical unit of work.
Client/server database engines such as Sybase, IBM's Database Manager, Ingres, Oracle, and Informix provide support at the server to execute SQL requests issued from the client workstation. The file services are still used for space allocation and basic directory services, but all other services are provided directly by the database server. Relational database management systems are the current technology for data management. Figure 4.1 charts the evolution of database technology from the first computers in the late 1950s to the object oriented database technologies that are becoming prevalent in the mid-1990s.
Flat Files: Sorting Physical Records
Database technology has evolved from the early 1960s' flat-file view when data was provided through punch cards or disk files simulating punch cards. These original implementations physically stored data columns and records according to the user view. The next column in the user view was the next column in the physical record, and the next record in the user view was the next physically stored record. Sorting the physical records provided the means by which a user was presented with a different view of related records. Columns were eliminated from view by copying the records from one location to another without the unnecessary columns. Many organizations today still use the flat-file approach to data management for reporting and batch update input. Data is extracted and sorted for efficient input to a batch report. Data is captured for update and sorted for more efficient input to a batch update program.
9
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Hierarchical Databases: Adjacent Storage of Related Record Types
The second generation of database technology, the hierarchical database, could store related record types physically or logically next to each other. In the hierarchical model implementation, when a user accesses a physical record type, other application-related data is usually stored physically close and will be moved from disk to DRAM all together. Internally stored pointers are used to navigate from one record to the next if there is insufficient space close by at data creation time to insert the related data. Products such as IMS and IDMS implemented this technique very successfully in the early 1970s. Many organizations continue to use database applications built to use this technology.
The major disadvantage with the hierarchical technique is that only applications that access data according to its physical storage sequence benefit from locality of reference. Changes to application requirements that necessitate a different access approach require the data to be reorganized. This process, which involves reading, sorting, and rewriting the database into a new sequence, is not transparent to applications that rely on the original physical sequence. Indexes that provide direct access into the database provide the capability to view and access the information in a sequence other than the physical sequence. However, these indexes must be known to the user at the time the application is developed. The developer explicitly references the index to get to the data of interest. Thus, indexes cannot be added later without changing all programs that need this access to use the index directly. Indexes cannot be removed without changing programs that currently access the index. Most implementations force the application developer to be sensitive to the ordering and occurrence of columns within the record. Thus, columns cannot be added or removed without changing all programs that are sensitive to these records.
Application sensitivity to physical implementation is the main problem with hierarchical database systems. Application sensitivity to physical storage introduced considerable complexity into the navigation as application programmers traverse the hierarchy in search of their desired data. Attempts by database vendors to improve performance have usually increased the complexity of access. If life is too easy today, try to create a bidirectionally virtually paired IMS logical relationship; that is why organizations using products such as IMS and IDMS usually have highly paid database technical support staff.
Relational Databases: Extracted Indexes and SQL
As hardware technology evolves, it is important for the data management capabilities to evolve to use the new capabilities. the current essential characteristics of the database world. The relational database is the de facto standard today; therefore, investment by vendors will be in products that target and support fully compliant SQL databases.
Relational database technology provides the current data management solution to many of the problems inherent in the flat-file and hierarchical technologies. In the late 1970s and early 1980s, products such as Software AG's ADABAS and System 2000 were introduced in an attempt to provide the application flexibility demanded by the systems of the day. IBM with IMS and Cullinet with IDMS attempted to add features to their products to increase this flexibility. The first relational products were introduced by ADR with Datacom DB and Computer Corporation of America with Model 204.
10
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Each of these implementations used extracted indexes to provide direct access to stored data without navigating the database or sorting flat files. All the products attempted to maintain some of the performance advantages afforded by locality of reference (storage of related columns and records as close as possible to the primary column and record).
Datacom and Model 204 introduced—for the first time—the Structured Query Language (SQL). SQL was invented in the early 1970s by E. F. (Ted) Codd of IBM Labs in Santa Teresa, California. The primary design objective behind SQL was to provide a data access language that could be shown mathematically to manipulate the desired data correctly. The secondary objective was to remove any sense of the physical storage of data from the view of the user. SQL is another flat-file implementation; there are no embedded pointers. SQL uses extracted indexes to provide direct access to the rows (records) of the tables (files) of interest. Each column (field) may be used as part of the search criteria.
SQL provides (especially with SQL2 extensions) a very powerful data access language. Its algebra provides all the necessary syntax to define, secure, and access information in an SQL database. The elegance of the language intrigued the user and vendor community to the extent that standards committees picked up the language and defined a set of standards around the language syntax. SQL1 and SQL2 define an exact syntax and a set of results for each operation. As a consequence, many software vendors have developed products that implement SQL. This standardization will eventually enable users to treat these products as commodities in the same way that PC hardware running DOS has become a commodity. Each engine will soon be capable of executing the same set of SQL requests and producing the same result. The products will then be differentiated based on their performance, cost, support, platform availability, and recovery-restart capabilities.
Dr. Codd has published a list of 13 rules that every SQL database engine should adhere to in order to be truly compliant. No products today can meet all of these criteria. The criteria, however, provide a useful objective set for the standards committees and vendors to strive for. We have defined another set of product standards that we are using to evaluate SQL database engines for the development of client/server applications. In particular, products should be implemented with support for the following products and standards:
∙ ANSI SQL and IBM DB2 standards
∙ A variety of front-end query products
∙ C and COBOL SQL precompilers
∙ Support for and compatibility with server NOS: NetWare, OS/2 (LAN Manager, LAN Server), Windows NT, Mac System 7, and/or UNIX (VINES, SCO, Sun, HP/UX USL, SVR4_), and MVS
∙ Support for client Operating Systems: DOS, Windows, OS/2, Windows NT, Mac System 7, or UNIX (Solaris, USL, SCO, HP/UX, SVR4_)
Production-capable client/server database engines must be able to provide a similar operational environment to that found in the database engines present in minicomputer and mainframe computers today. Capabilities for comparison include performance, auditability, and recovery techniques. In particular, the following DBMS features must be included in the database engine:
11
Class: MSc(SE)SY Unit II Sub: Client Server Technology
∙ Performance optimization tools
∙ Dynamic transaction backout
∙ Roll back from, roll forward to last backup
∙ Audit file recovery
∙ Automatic error detection and recovery
∙ File reclamation and repair tools
∙ Support for mirrored databases
∙ Capability to split database between physical disk drives
∙ Remote distributed database management features
∙ Maintenance of accurate and duplicate audit files on any LAN node
In the client/server implementation, you should offload database processing to the server. Therefore, the database engine should accept SQL requests from the client and execute them totally on the server, returning only the answer set to the client requestor. The database engine should provide support for stored procedures or triggers that run on the server.
The client/server model implies that there will be multiple concurrent user access. The database engine must be able to manage this access without requiring every developer to write well-behaved applications. The following features must be part of the database engine:
∙ Locking mechanisms to guarantee data integrity
∙ Deadlock detection and prevention
∙ Multithreaded application processing
∙ User access to multiple databases on multiple servers
Object-Oriented—A Bright Future
With the increasing maturity and popularity of OOTs for development, there has been a significant increase in maturity and acceptance of object-oriented database management systems (OODBMS). Object-oriented database management systems provide support for complex data structures: such as compound documents, CASE entity relationship models, financial models, and CAD/CAM drawings. OODBMS proponents claim that relational database management systems (RDBMS) can handle only simple data structures (such as tables) and simple transaction-processing applications that only need to create views combining a small number of tables. OODBMS proponents argue that there is a large class of problems that need to be and will be more simply implemented if more complex data structures can be viewed directly. RDBMS vendors agree with the need to support these data structures but argue that the issue is one of implementation, not architecture.
12
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Relational databases are characterized by a simple data structure. All access to data and relationships between tables are based on values. A data value occurrence is uniquely determined by the concatenation of the table name, column name, and the value of the unique identifier of the row (the primary key). Relationships between tables are determined by a common occurrence of the primary key values. Applications build a view of information from tables by doing a join based on the common values. The result of the join is another table that contains a combination of column values from the tables involved in the join.
The development of a relational algebra defining the operations that can be performed between tables has enabled efficient implementations of RDBMSs. The establishment of industry standards for the definition of and access to relational tables has speeded the acceptance of RDBMSs as the de facto standard for all client/server applications today. Similar standards do not yet exist for OODBMSs. There is a place for both models. To be widely used, OODBMSs need to integrate transparently with RDBMS technology. Table 4.1 compares the terminology used by RDBMS and OODBMS proponents.
There remain some applications for which RDBMSs have not achieved acceptable performance. Primarily, these are applications that require very complex data structures. Thousands of tables may be defined with many relationships among them. Frequently, the rows are sparsely populated, and the applications typically require many rows to be linked, often recursively, to produce the necessary view.
The major vendors in this market are Objectivity Inc., Object Design, Ontos, and Versant. Other vendors such as HP, Borland, and Ingres have incorporated object features into their products.
The application characteristics that lead to an OODBMS choice are shown in Figure 4.3. OODBMS will become production capable for these types of applications with the introduction of 16Mbps D-RAM and the creation of persistent (permanent) databases in D RAM. Only the logging functions will use real I/O. Periodically, D-RAM databases will be backed up to real magnetic or optical disk storage. During 1993, a significant number of production OODBMS applications were implemented. With the confidence and experience gained from these applications, the momentum is building, and 1994 and 1995 will see a significant increase in the use of OODBMSs for business critical applications. OODBMSs have reached a maturity level coincident with the demand for multimedia enabled applications. The complexities of dealing with multimedia demands the features of OODBMS for effective storage and manipulation.
To enable more complex data types to be manipulated by a single command, OODBMSs provide encapsulated processing logic with the object definition.
Communications Services
Client/server applications require LAN and WAN communication services. Basic LAN services are integral to the NOS. WAN services are provided by various communications server products. Chapter 5 provides a complete discussion of connectivity issues in the client/server model.
13
Class: MSc(SE)SY Unit II Sub: Client Server Technology
Security Services
Client/server applications require similar security services to those provided by host environments. Every user should be required to log in with a user ID and password. If passwords might become visible to unauthorized users, the security server should insist that passwords be changed regularly. The enterprise on the desk implies that a single logon ID and logon sequence is used to gain the authority once to access all information and process for the user has a need and right of access. Because data may be stored in a less physically secure area, the option should exist to store data in an encrypted form. A combination of the user ID and password should be required to decrypt the data.
New options, such as floppyless workstations with integrated data encryption standard (DES) coprocessors, are available from vendors such as Beaver Computer Company. These products automatically encrypt or decrypt data written or read to disk or a communication line. The encryption and decryption are done using the DES algorithm and the user password. This ensures that no unauthorized user can access stored data or communications data. This type of security is particularly useful for laptop computers participating in client/server applications, because laptops do not operate in surroundings with the same physical security of an office. To be able to access the system from a laptop without properly utilizing an ID number and password would be courting disaster.
The Network Operating System
The network operating system (NOS) provides the services not available from the client OS. Novell NetWare
NetWare is a family of LAN products with support for IBM PC-compatible and Apple Macintosh clients, and IBM PC-compatible servers. NetWare is a proprietary NOS in the strict sense that it does not require another OS, such as DOS, Windows, Windows NT, OS/2, Mac System 7, or UNIX to run on a server. A separate Novell product—Portable NetWare for UNIX—provides server support for leading RISC-based UNIX implementations, IBM PC-compatible systems running Windows NT, OS/2, high-end Apple Macs running Mac System 7, and Digital Equipment Corporation VAXs running VMS.
NetWare provides the premier LAN environment for file and printer resource sharing. It had 62 percent of the market share in 1993. It is widely installed as the standard product in many organizations. NetWare is the original LAN NOS for the PC world. As such, it incorporates
many of the ease-of-use features required for sharing printers, data, software, and communications lines. Agreements between Novell and IBM to remarket the product and provide links between NetWare and the LAN Server product confirm the commitment to Novell NetWare's use within large organizations. shows the major components of the NetWare architecture, illustrating client and server functions.
Novell has committed to move NetWare to an open architecture. Through the use of open protocol technology (OPT), Novell makes NetWare fully network protocol independent. Two standardized interfaces—open datalink interface (ODI) and NetWare Streams—enable other vendors to develop products for the NetWare environment. This facilitates its integration into other platforms. Figure 4.5 outlines the NetWare open architecture. The diagram also
14
Class: MSc(SE)SY Unit II Sub: Client Server Technology
illustrates the wide range of connectivity supported by NetWare. Client workstations can use Mac System 7, OS/2, DOS, Windows, Windows NT, NetWare, or UNIX NFS operating environments. OS/2, Windows NT, and UNIX servers may be installed on the same LAN as NetWare servers to provide support for products that require these platforms. Novell's purchase of USL from AT&T has increased its commitment to early support for native UNIX servers. HP, Sun, DEC, and Novell have announced an agreement to port NetWare to their respective UNIX platforms. Novell has won the battle to be the standard for the file/print server in the LAN environment.
Novell's published goal is to provide NetWare services totally independent of network media, network transport protocols, client/server protocols, and server and client operating systems, at each layer of network design.
NetWare has benefitted from its high performance and low resource requirements as much as it has from its relative ease of use. This performance has been provided through the use of a proprietary operating system and network protocols. Even though this has given Novell an advantage in performance, it has caused difficulties in the implementation of application and database servers in the Novell LAN. Standard applications cannot run on the server processor, because NetWare does not provide compatible APIs. Instead, NetWare provides a high performance capability called a NetWare Loadable Module (NLM) that enables database servers such as Sybase and Oracle, and communications servers such as Gateway Communications provides, to be linked into the NetWare NOS. In addition, the tailored operating environment does not provide some system features, such as storage protection and multitasking, in the same fundamental way that OS/2 and UNIX do. However, Novell is committed to address these issues by supporting the use of UNIX, OPENVMS, OS/2, and Windows NT as native operating environments.
With the release of NetWare 4.0, Novell addressed the serious issue of enterprise computing with improved network directory services (NDS), one thousand node domains, and LAN/WAN support for TCP/IP. Native NetWare 4.x will be available to developers in early 1994 and production ready by the end of 1994. For the other end of the product range, Novell released NetWare Lite in 1993 to address the small business and simple workgroup requirements of LANs with five or fewer workstations. This enables organizations to remain with NetWare as the single LAN technology everywhere. Clearly, Novell's pitch is that systems management and administration are greatly simplified with the single standard of "NetWare Everywhere."
LAN Manager
LAN Manager and its IBM derivative, LAN Server, are the standard products for use in client/server implementations using OS/2 as the server operating system. LAN Manager/X is the standard product for client/server implementations using UNIX System V as the server operating system. Microsoft released its Advanced Server product with Windows NT in the third quarter of 1993. During 1994, it will be enhanced with support for the Microsoft network management services, currently referred to as "Hermes," and Banyan's Enterprise Network Services (ENS). Advanced Server is the natural migration path for existing Microsoft LAN Manager and IBM LAN Server customers. Existing LAN Manager/X customers probably won't find Advanced Server an answer to their dreams before 1995.
15
Class: MSc(SE)SY Unit II Sub: Client Server Technology
AT&T has taken over responsibility for the LAN Manager/X version. Vendors such as Hewlett-Packard (HP) have relicensed the product from AT&T. AT&T and Microsoft have an agreement to maintain compatible APIs for all base functionality.
LAN Manager and Advanced Server provide client support for DOS, Windows, Windows NT, OS/2, and Mac System 7. Server support extends to NetWare, AppleTalk, UNIX, Windows NT, and OS/2. Client workstations can access data from both NetWare and LAN Manager servers at the same time. LAN Manager supports NetBIOS and Named Pipes LAN communications between clients and OS/2 servers. Redirection services are provided to map files and printers from remote workstations for client use.
Advanced Server also supports TCP/IP communication. In early 1994, Advanced Server still will be a young product with many missing pieces. Even more troublesome, competitiveness between Microsoft and Novell is delaying the release of client requestor software and NetWare Core Protocol (NCP) support. Microsoft has added TCP/IP support to LAN Manager 2.1 and Advanced Server along with NetView and Simple Network Management Protocol (SNMP) agents. Thus, the tools are in place to provide remote LAN management for LAN Manager LANs. Microsoft has announced support for IBM NetView 6000 for Advanced Server management.
Advanced Server provides integrated support for peer-to-peer processing and client/server applications. Existing support for Windows NT, OS/2, UNIX, and Mac System 7 clients lets application, database, and communication servers run on the same machine as the file and print server. This feature is attractive in small LANs. The native operating system support for preemptive multitasking and storage protection ensures that these server applications do not reduce the reliability of other services. Even as Windows NT is rolled out to provide the database, application, and communications services to client/server applications, the use of Novell as the LAN NOS of choice will continue for peripheral resource sharing applications.
Microsoft has attempted to preempt the small LAN market with its Windows for Workgroups (WfW) product. This attacks the same market as NetWare Lite with a low-cost product that is tightly integrated with Windows. It is an attractive option for small organizations without a requirement for larger LANs. The complexities of systems management make it less attractive in an enterprise environment already using Novell. WfW can be used in conjunction with Novell for a workgroup wishing to use some WfW services, such as group scheduling.
IBM LAN Server
IBM has entered into an agreement to resell and integrate the Novell NetWare product into environments where both IBM LAN Server and Novell NetWare are required. NetWare provides more functional, easier-to-use, and higher-performance file and print services. In environments where these are the only LAN functions, NetWare is preferable to LAN Manager derivatives. The capability to interconnect to the SNA world makes the IBM product LAN Server attractive to organizations that prefer to run both products. Most large organizations have department workgroups that require only the services that Novell provides well but may use LAN Server for client/server applications using SNA services such as APPN.
16
Class: MSc(SE)SY Unit II Sub: Client Server Technology
IBM and Microsoft had an agreement to make the APIs for the two products equivalent. However, the dispute between the two companies over Windows 3.x and OS/2 has ended this cooperation. The most recent releases of LAN Manager NT 3 and LAN Server 3 are closer to the agreed equivalency, but there is no guarantee that this will continue. In fact, there is every indication that the products will diverge with the differing server operating system focuses for the two companies. IBM has priced LAN Server very attractively so that if OS/2 clients are being used, LAN Server is a low-cost option for small LANs. LAN Server supports DOS, Windows, and OS/2 clients. No support has been announced for Mac System 7, although it is possible to interconnect AppleTalk and LAN Server LANs to share data files and communication services.
Banyan VINES
Banyan VINES provides basic file and print services similar to those of Novell and Lan Manager.
VINES incorporates a facility called StreetTalk that enables every resource in a Banyan enterprise LAN to be addressed by name. VINES also provides intelligent WAN routing within the communications server component. These two features are similar to the OSI Directory Services X.500 protocol.
StreetTalk enables resources to be uniquely identified on the network, making them easier to access and manage. All resources, including file services, users, and printers, are defined as objects. Each object has a StreetTalk name associated with it.
StreetTalk names follow a three-level hierarchical format: Item@Group@Organization. For example, a user can be identified as Psmith@Cerritos@Tnet. All network objects are stored in a distributed database that can be accessed globally. Novell's NDS is similar to StreetTalk
in functionality. However, there are key differences. NDS can partition and replicate the database, which will generally improve performance and reliability. NDS is X.500-compliant and enables multiple levels of hierarchy.
StreetTalk supports a fixed three-level hierarchy. The NDS architecture offers more flexibility but with corresponding complexity, and StreetTalk is less flexible but less complex to manage.
One advantage the current version of StreetTalk has over NDS is that StreetTalk objects can have unlimited attributes available for selection. To locate a printer with certain attributes, the command: "Locate a color laser printer with A4 forms on the 7th floor of Cerritos" finds and uses the printer with the desired characteristics.
VINES V5.5 offers ISDN and TI support for server-to-server communications over a WAN, as well as integration of DOS, Windows, OS/2, and Mac clients. VINES does not support NFS clients.
Novell and Microsoft have announced support for Banyan ENS within their products to be available in Q2 1994. Banyan and DCA provide SNA services to the VINES environment. VINES supports UNIX, DOS, Windows, OS/2, and Mac System 7 clients.
17
Class: MSc(SE)SY Unit II Sub: Client Server Technology
PC Network File Services (NFS)
NFS is the standard file system support for UNIX. PC NFS is available from SunSelect and FTP to provide file services support from a UNIX server to Windows, OS/2, Mac, and UNIX clients.
NFS lets a client mount an NFS host's filing system (or a part of it) as an extension of its own resources. NFS's resource-sharing mechanisms encompass interhost printing. The transactions among NFS systems traditionally ride across TCP/IP and Ethernet, but NFS works with any network that supports 802.3 frames.
SunSelect includes instructions for adding PC-NFS to an existing LAN Manager or Windows for Workgroups network using Network Driver Interface Specification (NDIS) drivers.
With the increasing use of UNIX servers for application and database services, there is an increasing realization that PC NFS may be all that is required for NOS support for many workgroups. This can be a low-cost and low-maintenance option because the UNIX server is easily visible from a remote location.
What Are the Available Platforms?
Client/server computing requires that LAN and WAN topologies be in place to provide the necessary internetworking for shared applications and data. Gartner Group1 surveyed and estimated the Microsystems' integration topologies for the period 1986-1996; the results appear in Figure 4.6. Of special interest is the projection that most workstations will be within LANs by 1996, but only 14 percent will be involved in an enterprise LAN by that date. These figures represent a fairly pessimistic outlook for interconnected LAN-to-LAN and enterprise-wide connectivity. These figures probably will prove to be substantially understated if organizations adopt an architectural perspective for the selection of their platforms and tools and use these tools within an organizationally optimized systems development environment (SDE).
Workstations in LAN Configuration
This model is the most basic implementation providing the standard LAN services for file and printer sharing.
LAN-to-LAN/WAN Configuration
Routers and communication servers will be used to provide communication services between LANs and into the WAN. In the client/server model, these connections will be provided transparently by the SDE tools. There are significant performance implications if the traffic volumes are large. IBM's LU6.2 implementation in APPC and TCP/IP provides the best support for high-volume, LAN-to-LAN/WAN communications. DEC's implementation of DECnet always has provided excellent LAN-to-WAN connectivity. Integrated support for TCP/IP, LU6.2, and IPX provides a solid platform for client/server LAN-to-WAN
18
Class: MSc(SE)SY Unit II Sub: Client Server Technology
implementation within DECnet. Novell 4.x provides support for TCP/IP as both the LAN and WAN protocol. Internetworking also is supported between IPX and TCP/IP.
LAN-to-Host Configuration
The lack of real estate on the desktop encouraged most organizations to move to a single device—using terminal emulation from the workstation—to access existing mainframe applications. It will take considerable time and effort before all existing host-based applications in an organization are replaced by client/server applications. In the long term, the host will continue to be the location of choice for enterprise database storage and for the provision of security and network management services.
Mainframes are expensive to buy and maintain, hard to use, inflexible, and large, but they provide the stability and capacity required by many organizations to run their businesses. As Figure 4.7 notes, in the view of International Data Corporation, they will not go away soon. Their roles will change, but they will be around as part of the enterprise infrastructure for many more years. Only organizations who create an enterprise architecture strategy and transformational plans will accomplish the migration to client/server in less than a few years. Without a well-architected strategy, gradual evolution will produce failure.
Enterprise-Wide
Information that is of value or interest to the entire business must be managed by a central data administration function and appear to be stored on each user's desk. These applications are traditionally implemented as Online Transaction Processing (OLTP) to the mainframe or minicomputer. With the client/server model, it is feasible to use database technology to replicate or migrate data to distributed servers. Wherever data resides or is used, the location must be transparent to the user and the developer. Data should be stored where it best meets the business need.
OLTP on a LAN
Online Transaction Processing applications are found in such industries as insurance, finance, government, and sales—all of which process large numbers of transactions. Each of these transactions requires a minimal amount of user think time to process. In these industries, data is frequently collected at the source by the knowledgeable worker. As such, the systems have high requirements for availability, data integrity, performance, concurrent access, growth potential, security, and manageability. Systems implemented in these environments must prove their worth or they will be rejected by an empowered organization. They must be implemented as an integral part of the job process.
OLTP has traditionally been the domain of the large mainframe vendors—such as IBM and DEC—and of special-purpose, fault-tolerant processors from vendors such as Tandem and Stratus. The client/server model has the capability to provide all the services required for OLTP at much lower cost than the traditional platforms. All the standard client/server requirements for a GUI—application portability, client/server function partitioning, software distribution, and effective development tools—exist for OLTP applications.
The first vendor to deliver a production-quality product in this arena is Cooperative Solutions with its Ellipse product. Prior to Ellipse, OLTP systems required developers to manage the
19
Class: MSc(SE)SY Unit II Sub: Client Server Technology
integrity issues of unit-of-work processing, including currency control and transaction rollback. Ellipse provides all the necessary components to build systems with these features. Ellipse currently operates with Windows 3.x, OS/2 clients, and OS/2 servers using the Sybase database engine. Novell is working with Cooperative Solutions to port Ellipse as a Novell NetWare Loadable Module (NLM). It provides a powerful GUI development environment using a template language as a shorthand for development. This language provides a solid basis for building an organizational SDE and lends itself well to the incorporation of standard components.
OLTP with UNIX
As UNIX has matured, it has added many of the features found in other commercial operating systems such as VMS and MVS. There are now several offerings for OLTP with UNIX. IBM is promoting CICS 6000 as a downsizing strategy for CICS MVS. Database services will be provided by a combination of AIX and MVS servers.
Novell purchased the Tuxedo product from AT&T with its acquisition of USL. OSF selected the Transarc Ensina product as the basis for OLTP with DCE. The DCE recognition quickly placed Ensina in the lead in terms of supported UNIX platforms. IBM has released a version of DCE for AIX that includes the Ensina technology. NCR provides a product called TopEnd as part of its Cooperation series.
Client/server TP monitor software is becoming increasingly necessary now that client/server systems are growing to include several database servers supporting different vendors' databases and servicing tens, hundreds, and even thousands of users that need to access and update the same data. UNIX-based OTLP products are maturing to provide the same level of functionality and reliability as traditional mainframe-based IBM Customer Information Control Systems (CICS), yet at less cost and with graphical front ends.
The Server Operating System
Servers provide the platform for application, database, and communication services. There are six operating system platforms that have the greatest potentional and/or are prevalent today: NetWare, OS/2, Windows NT, MVS, VMS, and UNIX.
NetWare
NetWare is used by many organizations, large and small, for the provision of file, printer, and network services. NetWare is a self-contained operating system. It does not require a separate OS (as do Windows NT, OS/2, and UNIX) to run. Novell is taking steps to allow NetWare to run on servers with UNIX. Novell purchased USL and will develop shrink-wrapped products
to run under both NetWare and UNIX System V, Release 4.2. The products will enable UNIX to simultaneously access information from both a NetWare and a UNIX server.
OS/2
OS/2 is the server platform for Intel products provided by IBM in the System Application Architecture (SAA) model. OS/2 provides the storage protection and preemptive multitasking services needed for the server platform. Several database and many application products have been ported to OS/2. The only network operating systems directly supported with OS/2 are
20
Class: MSc(SE)SY Unit II Sub: Client Server Technology
LAN Manager and LAN Server. Novell supports the use of OS/2 servers running on separate processors from the NetWare server. The combination of Novell with an OS/2 database and application servers can provide the necessary environment for a production-quality client/server implementation. Appendix A describes such an implementation.
Windows NT
With the release of Windows NT (New Technology) in September of 1993, Microsoft staked its unique position with a server operating system. Microsoft's previous development of OS/2 with IBM did not create the single standard UNIX alternative that was hoped for. NT provides the preemptive multitasking services required for a functional server. It provides excellent support for Windows clients and incorporates the necessary storage protection services required for a reliable server operating system. Its implementation of C2 level security goes well beyond that provided by OS/2 and most UNIX implementations. It will take most of 1994 to get the applications and ruggedizing necessary to provide an industrial strength platform for business critical applications. With Microsoft's prestige and marketing muscle, NT will be installed by many organizations as their server of choice.
MVS
IBM provides MVS as a platform for large applications. Many of the existing application services that organizations have purchased operate on System 370-compatible hardware running MVS. The standard networking environment for many large organizations—SNA— is a component of MVS. IBM prefers to label proprietary systems today under the umbrella of SAA. The objective of SAA is to provide all services on all IBM platforms in a compatible way—the IBM version of the single-system image.
There is a commitment by IBM to provide support for the LAN Server running natively under MVS. This is an attractive option for organizations with large existing investments in MVS applications. The very large data storage capabilities provided by System 370- compatible platforms with MVS make the use of MVS for LAN services attractive to large organizations. MVS provides a powerful database server using DB2 and LU6.2. With broad industry support for LU6.2, requests that include DB2 databases as part of their view can be issued from a client/server application. Products such as Sybase provide high-performance static SQL support, making this implementation viable for high-performance production applications.
OPENVMS
Digital Equipment Corporation provides OPENVMS as its server platform of choice. VMS has a long history in the distributed computing arena and includes many of the features necessary to act as a server in the client/server model. DEC was slow to realize the importance of this technology, and only recently did the company enter the arena as a serious vendor. NetWare supports the use of OPENVMS servers for file services. DEC provides its own server interface using a LAN Manager derivative product called Pathworks.
Pathworks runs native on the VAX and RISC Alpha RXP. This is a particularly attractive configuration because it provides access on the same processor to the application, database, and file services provided by a combination of OPENVMS, NetWare, and LAN Manager. Digital and Microsoft have announced joint agreements to work together to provide a smooth
21
Class: MSc(SE)SY Unit II Sub: Client Server Technology
integration of Windows, Windows NT, Pathworks, and OPENVMS. This will greatly facilitate the migration by OPENVMS customers to the client/server model.
VAX OPENVMS support for database products such as RDB, Sybase, Ingres, and Oracle enables this platform to execute effectively as a database server for client/server applications. Many organizations have large investments in VAX hardware and DECnet networking. The option to use these as part of client/server applications is attractive as a way to maximize the value of this investment. DECnet provides ideal support for the single-system image model. LAN technology is fundamental to the architecture of DECnet. Many large organizations moving into the client/server world of computing have standardized on DECnet for WAN processing. For example, Kodak selected Digital as its networking company even after selecting IBM as its mainframe outsourcing company.
UNIX
UNIX is a primary player as a server system in the client/server model. Certainly, the history of UNIX in the distributed computing arena and its open interfaces provide an excellent opportunity for it to be a server of choice. To understand what makes it an open operating system, look at the system's components. UNIX was conceived in the early 1970s by AT&T employees as an operating environment to provide services to software developers who were discouraged by the incompatibility of new computers and the lack of development tools for application development. The original intention of the UNIX architecture was to define a standard set of services to be provided by the UNIX kernel. These services are used by a shell that provides the command-line interface. Functionality is enhanced through the provision of a library of programs. Applications are built up from the program library and custom code. The power and appeal of UNIX lie in the common definition of the kernel and shell and in the large amount of software that has been built and is available. Applications built around these standards can be ported to many different hardware platforms.
The objectives of the original UNIX were very comprehensive and might have been achieved except that the original operating system was developed under the auspices of AT&T. Legal ramifications of the consent decree governing the breakup of the Regional Bell Operating Companies (RBOCs) prevented AT&T from getting into the computer business. As a result, the company had little motivation early on to promote UNIX as a product.
To overcome this, and in an attempt to achieve an implementation of UNIX better suited to the needs of developers, the University of California at Berkeley and other institutions developed better varieties of UNIX. As a result, the original objective of a portable platform was compromised. The new products were surely better, but they were not compatible with each other or the original implementation. Through the mid-1980s, many versions of UNIX that had increasing functionality were released. IBM, of course, entered the fray in 1986 with its own UNIX derivative, AIX. Finally, in 1989, an agreement was reached on the basic UNIX kernel, shell functions, and APIs.
The computing community is close to consensus on what the UNIX kernel and shell will look like and on the definition of the specific APIs. Figure 4.8 shows the components of the future standard UNIX operating system architecture.
During all of these gyrations, one major UNIX problem has persisted that differentiates it from DOS, Windows NT, and OS/2 in the client/server world. Because the hardware
22
Class: MSc(SE)SY Unit II Sub: Client Server Technology
platforms on which UNIX resides come from many manufacturers and are based on many different chip sets, the "off-the-shelf" software that is sold for PCs is not yet available for UNIX. Software is sold and distributed in its executable form, so it must be compiled and
linked by the developer for the target platform. This means that organizations wishing to buy UNIX software must buy it for the specific target platform they are using. This also means that when they use many platforms in a distributed client/server application, companies must buy different software versions for each platform.
23
No comments:
Post a Comment